const router = require('koa-router')()
const key = require('../key')
// 注意： 官网代码无法直接使用， 
const AlipaySdk = require('alipay-sdk').default;
// 新建一个支付实例
const alipaySdk = new AlipaySdk({
  appId: '9021000133628166',
  // 应用私钥
  privateKey: key.privateKey,
  // 支付宝公钥
  alipayPublicKey: key.alipayPublicKey,
  // 网关
  gateway: 'https://openapi-sandbox.dl.alipaydev.com/gateway.do'
});

router.get('/pay/wap', async ctx => {
  // 1. 获取支付参数
  const { title, id, price } = ctx.request.query;
  // 2. 调用 支付宝 api
  // 支付页面接口，返回支付链接，交由用户打开，会跳转至支付宝网站
  const result = await alipaySdk.pageExec('alipay.trade.wap.pay', {
    // 返回支付链接
    method: 'GET',
    // 参数集合
    bizContent: {
      out_trade_no: id,
      total_amount: price,
      subject: title
    },
    // 支付成功回调地址
    returnUrl: 'https://www.taobao.com'
  });


  ctx.body = {
    code: 200,
    data: result
  }
})


router.get('/pay/pc', async ctx => {
  // 1. 获取支付参数
  const { title, id, price } = ctx.request.query;
  // 2. 调用 支付宝 api
  // 支付页面接口，返回支付链接，交由用户打开，会跳转至支付宝网站
  const result = await alipaySdk.pageExec('alipay.trade.page.pay', {
    // 返回支付链接
    method: 'GET',
    // 参数集合
    bizContent: {
      out_trade_no: id,
      total_amount: price,
      subject: title,
      product_code: 'FAST_INSTANT_TRADE_PAY'
    },
    // 支付成功回调地址
    returnUrl: 'https://www.taobao.com'
  });


  ctx.body = {
    code: 200,
    data: result
  }
})


module.exports = router
